package com.imgo.max.experience.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.imgo.max.common.util.page.Pagination;
import com.imgo.max.experience.dto.PracticerExperienceDto;
import com.imgo.max.experience.mapping.DreamFundConsumeLog;
import com.imgo.max.experience.mapping.PracticerDreamFundLog;
import com.imgo.max.experience.mapping.PracticerExperience;
import com.imgo.max.experience.mapping.PracticerExperienceLog;

public interface PracticerExperienceMapper extends UserExperienceMapper{

	int updateDreamFund(@Param(value = "uid") String uid, @Param(value = "value") int value);
	
	int increaseDreamFund(PracticerExperience praExpr);
	
	int reduceDreamFund(@Param(value = "uid") String uid, @Param(value = "value") int value);
	
	int addExperienceLog(PracticerExperienceLog praExprLog);
	
	int addDreamFundLog(PracticerDreamFundLog dreamFundLog);
	
	int addDreamFundConsumeLog(DreamFundConsumeLog dreamFundConsumeLog);
	
	List<DreamFundConsumeLog> queryDreamFundResumeLog(@Param(value = "uid")String uid, @Param(value = "pagination") Pagination pagination);
	
	int queryExperienceCountByRange(@Param(value = "begin")Integer begin, @Param(value = "end")Integer end);
	
	List<PracticerExperience> queryExperienceByRange(@Param(value = "begin")Integer begin, @Param(value = "end")Integer end, @Param(value = "pagination")Pagination pagination);
	
	int queryExperienceCountByDreamFund(@Param(value = "begin")Integer begin, @Param(value = "end")Integer end);
	
	List<PracticerExperience> queryExperienceByDreamFund(@Param(value = "begin")Integer begin, @Param(value = "end")Integer end, @Param(value = "pagination")Pagination pagination);
}